{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-c833698b7dad927d",
     "locked": true,
     "schema_version": 3,
     "solution": false,
     "task": false
    }
   },
   "source": [
    "# Exercise 6: Multi-Step Bootstrapping"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-7cf627dacfec200a",
     "locked": true,
     "schema_version": 3,
     "solution": false,
     "task": false
    }
   },
   "source": [
    "In this exercise we will have a look at n-step methods and eligibility trace. The n-step methods are a class of reinforcement learning algorithms that are an abstraction of the Monte Carlo and TD(0) methods discussed earlier and include them as special cases. Furthermore, we also consider the eligibility traces, which take a reverse approach to determining the state values. The environment we will be dealing with is a little more typical for control research: the inverted pendulum. \n",
    "\n",
    "![](https://miro.medium.com/max/1000/1*TNo3x9zDi1lVOH_3ncG7Aw.gif)\n",
    "\n",
    "To implement this environment, we will make use of the gymnasium library. Please install the gymnasium library within your preferred Python environment using:\n",
    "\n",
    "```pip install gymnasium```\n",
    "\n",
    "**Note: Use ```done = terminated or truncated``` for the end of the episode**\n",
    "\n",
    "Note that the episodes in this environment end with a truncation and not a termination. For this exercise, we assume that for the environment truncation and termination is the same. That is wherever, we are looking for a terminal state we instead look for the state where the episode is truncated! (Generally, termination and truncation are different things. This is the case because the timelimit is not actually part of the MDP but rather a constraint set from the outside. More on this [here](https://gymnasium.farama.org/tutorials/gymnasium_basics/handling_time_limits/))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-68ba542456c544d2",
     "locked": true,
     "schema_version": 3,
     "solution": false,
     "task": false
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import gymnasium as gym\n",
    "from gymnasium.wrappers import TimeLimit\n",
    "from tqdm.notebook import tqdm\n",
    "import matplotlib.pyplot as plt\n",
    "plt.style.use('seaborn-v0_8')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-b9853bfaec1d8013",
     "locked": true,
     "schema_version": 3,
     "solution": false,
     "task": false
    }
   },
   "source": [
    "Check if the installation and import work by executing the following cell. A window with an animation of the pendulum should open, display some random actions, and close automatically."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-8e133fbe2615fd5b",
     "locked": true,
     "schema_version": 3,
     "solution": false,
     "task": false
    }
   },
   "outputs": [],
   "source": [
    "env = gym.make('Pendulum-v1', render_mode=\"human\")\n",
    "env = env.unwrapped  # removes a built-in time limit of k_T = 200, we want to set the time limit ourselves\n",
    "env = TimeLimit(env, max_episode_steps = 300)\n",
    "\n",
    "state, _ = env.reset()\n",
    "for _ in range(300):\n",
    "    env.render()\n",
    "    state, reward, terminated, truncated, _ = env.step(env.action_space.sample()) # take a random action\n",
    "    done = terminated or truncated\n",
    "env.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-f29246bdc3e421c0",
     "locked": true,
     "schema_version": 3,
     "solution": false,
     "task": false
    }
   },
   "source": [
    "The goal of this environment is to bring the pendulum into the upper neutral position, where the angle $\\theta = 0$ and the angular velocitiy $\\frac{\\text{d}}{\\text{d}t}\\theta=\\omega=0$. The reward function is already designed that way and does not need further specification. For further information about the environment you may refer to the code and documentation of Farama Foundation's `gymnasium`:\n",
    "\n",
    "[Documentation of the gymnasium pendulum](https://gymnasium.farama.org/environments/classic_control/pendulum/)\n",
    "\n",
    "[Pendulum environment in the gymnasium Github repository](https://github.com/Farama-Foundation/Gymnasium/blob/main/gymnasium/envs/classic_control/pendulum.py)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-8570b84cc28ffc4d",
     "locked": true,
     "schema_version": 3,
     "solution": false,
     "task": false
    }
   },
   "source": [
    "## Discretization of Action and State Space"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-ee59383187979c94",
     "locked": true,
     "schema_version": 3,
     "solution": false,
     "task": false
    }
   },
   "source": [
    "Unlike the racetrack environment, the inverted pendulum comes with a continuous action and state space. Although it is possible to handle systems with these characteristics, we did not yet learn how to deal with them. For now, we only know how to implement agents for discrete action and state spaces. As a result, we will also try to represent the inverted pendulum within a discrete state / action space through discretization.\n",
    "\n",
    "The pendulum has three state variables relating to the momentary angular position $\\theta$:\n",
    "$$\n",
    "\\begin{align*}\n",
    "    x=\\begin{bmatrix}\n",
    "    \\text{cos}(\\theta)\\\\\n",
    "    \\text{sin}(\\theta)\\\\\n",
    "    \\frac{\\text{d}}{\\text{d}t}\\theta\n",
    "    \\end{bmatrix}\n",
    "    \\in\n",
    "    \\begin{bmatrix}\n",
    "    [-1, 1]\\\\\n",
    "    [-1, 1]\\\\\n",
    "    [-8 \\, \\frac{1}{\\text{s}}, 8 \\, \\frac{1}{\\text{s}}]\n",
    "    \\end{bmatrix},\n",
    "\\end{align*}\n",
    "$$\n",
    "and one input variable which relates to the torque applied at the axis of rotation:\n",
    "\n",
    "$$\n",
    "\\begin{align*}\n",
    "    u = T \\in [-2 \\, \\text{N}\\cdot\\text{m}, 2 \\, \\text{N}\\cdot\\text{m}]\n",
    "\\end{align*}\n",
    "$$\n",
    "\n",
    "After the discretization, we want the system to be defined on sets of non-negative natural numbers:\n",
    "\n",
    "\n",
    "$$\n",
    "\\begin{align*}\n",
    "    x_d =\n",
    "    \\text{discretize\\_state}(x)\n",
    "    \\in\n",
    "    \\begin{bmatrix}\n",
    "    \\{0,1,2,...,d_{\\theta}-1\\}\\\\\n",
    "    \\{0,1,2,...,d_{\\theta}-1\\}\\\\\n",
    "    \\{0,1,2,...,d_{\\omega}-1\\}\n",
    "    \\end{bmatrix},\n",
    "\\end{align*}\n",
    "$$\n",
    "\n",
    "$$\n",
    "\\begin{align*}\n",
    "    u_d =\n",
    "    \\text{discretize\\_action}(u)\n",
    "    \\in\n",
    "    \\{0,1,2,...,d_{T}-1\\}.\n",
    "\\end{align*}\n",
    "$$\n",
    "\n",
    "Since action is selected within the discrete action space, we need to transform it accordingly:\n",
    "\n",
    "$$\n",
    "\\begin{align*}\n",
    "    u=\n",
    "    \\text{continualize\\_action}(u_d):\n",
    "    \\{0,1,2,...,d_{T}-1\\} \\rightarrow [-2 \\, \\text{N}\\cdot\\text{m}, 2 \\, \\text{N}\\cdot\\text{m}]\n",
    "    .\n",
    "\\end{align*}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-28b6b992373b4a65",
     "locked": true,
     "schema_version": 3,
     "solution": false,
     "task": false
    }
   },
   "source": [
    "Below the functions `discretize_state` and `continualize_action` are given, such that a discrete RL agent can be applied. (Please note that all I/O of `gymnasium` consists of numpy arrays.) The discretization intervals $d_\\theta, d_\\omega, d_T$ are parameters that can be changed for different tests. The discretization intervals should are uniformly distributed on their respective state space.\n",
    "\n",
    "A parametrization of $d_\\theta = d_\\omega = d_T = 15$ can be used to yield satisfactory results in this exercise.\n",
    "However, does it make a difference if the number of discretization intervals is odd or even? If yes, what should be preferred for the given environment? "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbgrader": {
     "grade": true,
     "grade_id": "cell-cf67ba4807c7ce8c",
     "locked": false,
     "points": 0,
     "schema_version": 3,
     "solution": true,
     "task": false
    }
   },
   "source": [
    "The number of discretization intervals can in fact make a difference in this case. The inverted pendulum can be considered as solved when brought into the upper neutral position $\\theta=0, \\omega=0$. The state as given by `gymnasium` would therefore be:\n",
    "\n",
    "\\begin{align*}\n",
    "x_\\text{neutral}=\n",
    "\\begin{bmatrix}\n",
    "\\text{cos}(0)\\\\\n",
    "\\text{sin}(0)\\\\\n",
    "0\n",
    "\\end{bmatrix}\n",
    "=\n",
    "\\begin{bmatrix}\n",
    "1\\\\\n",
    "0\\\\\n",
    "0\n",
    "\\end{bmatrix},\n",
    "u_\\text{neutral}=0\n",
    "\\end{align*}\n",
    "\n",
    "Consequently, the discretization / continualization should allow for precise transformation of this state, which is given when assuming an odd number of discretization intervals. If one uses an even number of intervals, one interval boundary will be located exactly at zero, potentially leading to rapid bouncing around the neutral position."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-af38d4d166803785",
     "locked": false,
     "schema_version": 3,
     "solution": true,
     "task": false
    }
   },
   "outputs": [],
   "source": [
    "d_theta = 15\n",
    "d_omega = 15\n",
    "d_T = 15\n",
    "\n",
    "def discretize_state(states):\n",
    "    limits = [1, 1, 8]\n",
    "    nb_disc_intervals = [d_theta, d_theta, d_omega]\n",
    "\n",
    "    # bring to value range [-1, 1]\n",
    "    norm_states = [state / limit for state, limit in zip(states, limits)]\n",
    "    interval_lengths = [2 / d for d in nb_disc_intervals]\n",
    "    disc_state = [(norm_state + 1) // interval_length for norm_state,\n",
    "                  interval_length in zip(norm_states, interval_lengths)]\n",
    "    disc_state = [(state - 1) if state == d else state for state,\n",
    "                  d in zip(disc_state, nb_disc_intervals)]  # ensure that disc_state < d\n",
    "\n",
    "    return np.array(disc_state, dtype=int)\n",
    "\n",
    "\n",
    "def continualize_action(disc_action):\n",
    "    limit = 2\n",
    "    interval_length = 2 / (d_T-1)\n",
    "    norm_action = disc_action * interval_length\n",
    "    cont_action = (norm_action - 1) * limit\n",
    "    return np.array(cont_action).flatten()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-54296429c6a25f98",
     "locked": true,
     "schema_version": 3,
     "solution": false,
     "task": false
    }
   },
   "source": [
    "Use the following cell for debugging:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-755b0b9277910870",
     "locked": true,
     "schema_version": 3,
     "solution": false,
     "task": false
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "discrete action: 3, continuous action: [-1.14285714]\n",
      "discrete state: [12 13  8], continuous state: [0.62023216 0.7844183  0.93715113]\n",
      "discrete action: 8, continuous action: [0.28571429]\n",
      "discrete state: [11 13  8], continuous state: [0.5568782 0.8305941 1.568322 ]\n",
      "discrete action: 3, continuous action: [-1.14285714]\n",
      "discrete state: [11 14  9], continuous state: [0.47029993 0.8825066  2.019839  ]\n",
      "discrete action: 7, continuous action: [0.]\n",
      "discrete state: [10 14 10], continuous state: [0.34810102 0.937457   2.681719  ]\n",
      "discrete action: 7, continuous action: [0.]\n",
      "discrete state: [ 8 14 10], continuous state: [0.18522821 0.9826955  3.3848116 ]\n"
     ]
    }
   ],
   "source": [
    "env = gym.make('Pendulum-v1', render_mode=\"human\")\n",
    "state, _ = env.reset()\n",
    "for _ in range(5):\n",
    "    disc_action = np.random.choice(range(9))\n",
    "    cont_action = continualize_action(disc_action)\n",
    "    print(\"discrete action: {}, continuous action: {}\".format(disc_action, cont_action))\n",
    "    \n",
    "    state, reward, terminated, truncated, _ = env.step(cont_action) # take a random action\n",
    "    done = terminated or truncated\n",
    "    disc_state = discretize_state(state)\n",
    "    print(\"discrete state: {}, continuous state: {}\".format(disc_state, state))\n",
    "    \n",
    "env.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbgrader": {
     "grade": true,
     "grade_id": "cell-7050729ab9b288bc",
     "locked": false,
     "points": 0,
     "schema_version": 3,
     "solution": true,
     "task": false
    }
   },
   "source": [
    "## Discretization Diagrams"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "nbgrader": {
     "grade": true,
     "grade_id": "cell-191ecd76d4787fb5",
     "locked": false,
     "points": 0,
     "schema_version": 3,
     "solution": true,
     "task": false
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 800x550 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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ZKwvCaw9f6f7Btkymj59ejpCkTzJ6RlFSuqy2WabRV6U+7fdCJk7d25sscUWaXcomQ9JOo3JH973ve990dDQEGWVHMH57ne/O+2MJH98k2f8yS/SZOi7nscnBtNJS57h9lySA9iSZ7vJ+2WuSyI56Ojf/u3f4p//+Z9j3333TTuMPZekK10myexdclBjMnL0xz/+MW644YZ0R46BxizKInny+81vfjMdw0p2Wej7GCm7JIT1/d2SNAmSS/J+2SWv/O21117pE+KkmZLs/JPs7HLIIYdEme29995pgykZ6UtC/Y033ph2W/N0UpyGZE+srBdRj5544on0iPn58+enndZkK5LkQK3kAVFmybO45KW8n/zkJ+nG4cnMzEknnfSig07K7Bvf+Eb6ZCfplpRd8lJnMgNdzW9+85tcdQFqoWdW/le/+lX6RPBf/uVfSt2FTiRhI5lTrGZ9Iyhl03PWrLPOOivrpeRCcsBw0khJNtdPnhgeeuih8bGPfazUDabE4sWL0/ySPEFOXiV+73vfm45o5aUugisAAIVgVAAAgEIQXAEAKATBFQCAQhBcAQAoBMEVAIBCEFwBACgEwRUAgEIQXAEAKATBFQCAQhBcAerEaaedFvPmzYutttoq66UAjAjBFaBOvP3tb49rrrkm62UAjJjmkbtpAGpp5513znoJACNKxxWgwH7729/G3Llzo729PeulAIw4wRWgwG666abYfffdY8yYMVkvBWDECa4ABXbzzTfHm970pqyXAVATgitATtx4442x9dZbx3333feiz3V1dcW2224bX/3qV3uvW7RoUfztb3+Lvfbaq8YrBciG4AqQA52dnXHmmWfGvvvuG3PmzHnR55uammL27Nlx77339hsTSP7t9OnT049PPvnkeMMb3pC+n7z9xCc+UcP/AcDIs6sAQA5cd9118cgjj8Q3vvGNAf/NpptuGk888US/4Np3TOCss84a8XUCZEnHFSAHrr766thyyy3j7/7u79KPV65cGRdffHE8++yzvf9m1apV0d3dnb7f2toa99xzj/lWoFQEV4CMJfOrd999d+y444691911111x9tlnx+jRo3uve/rpp2PmzJnp+7fccktMmTIlttlmm0zWDJAFowIAGVuyZEmsXbs2Zs2a1XvdbbfdFi0tLb3B9cknn4yHH344DjrooN7dBN74xjdGQ0ND+vFgTvO6cOHCEfs/ANSC4AqQgwOzEh0dHenb1atXx69//evejxNXXHFFeoDW2972tvT65MQDSUe2h1AKlIHgCpCxV7ziFbHJJpukc65J5/Taa69Nt7i68sor43vf+14613rBBRfEIYccEq985Svj9ttvTzu0e+yxR7/bSQLviSeeGI8++mhUKhU7CwB1R3AFyFhzc3N84QtfiM9//vNp8EwOuPrkJz+Z7iLwH//xH+lZsQ4//PD4+Mc/3jsmsOuuu8a4ceP63c6tt96azr2ed9556cfPPPNMJv8fgJHSUEmelgNQGPvss0+8//3vj/e+9739rk+20/rwhz8cb37zm2O33XaLPffcMx0vAKgXgitAHUm20fqf//mfuP7662PFihVx0UUXZb0kgGEjuALUieTkBBtvvHE6QpDsQrDffvvF7373u6yXBTBszLgC1IlkZ4Evf/nL6RZZyQFdn/nMZ7JeEsCw0nEFAKAQnDkLAIBCEFwBACgEwRUAgEIQXAEAKATBFQCAQhBcAQAoBMEVAIBCEFwBACgEwRUAgEIQXAEAKATBFQCAQhBcAQCIIvj/AXbLQhbtXas8AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 800x550 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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mFmM1q77PCFKTIztkj4Eo/j4aKe7EPCoofeooXeon/eooXeoX/DV0C/Crpl6cNNNNx33c3/96181ceJE++fnnntODzzwgO6+++6v3V3BzOEtLy9vc80EXTNC3BGlpVVdNrJrdl1o132uJpWVHTtVA22ZV5DmG6uiokZut8fp7gQkaug9augd6uc9augd6heYNWzPoKBfhN2xY8eqoKDghPfMmTNHDz/8sO666y7dfPPNX3tfWlqaCgsL21zbv3//MVMbTsbjabKPrmC2F0tNiD7hVIbUxGhl9IlXYyPfcO1lvrGol3eoofeooXeon/eooXeoX/DV0L8mVXyN1157zQZdM6J7++23n/DeM844Q+vXr7dTI1qsXr3aXvcXZnrEzIsz9XWzJMz1mePN51mcBgAAENRh10xJ+O1vf6tvfvObmjZtml2A1vIwOzIYpaWlrTsznH322erTp48Nxps2bbJ783755Ze6+uqr5U9GZ6fo+1eebkdwj2Ta5rr5PAAAALzjF9MYTmT58uV2r10zumseR3rvvfeUnp5ug6wJw2Yf3dDQUD366KP65S9/qRkzZmjgwIF23q+/HShhmEA7KitZRbsr1NgUYufomqkLjOgCAAB0jpAms+krjlFS0nxUry+EhbnsBGuzGM2f5rgECurnPWroPWroHernPWroHeoXmDVMSekR+NMYAAAAgFNF2AUAAEDQIuwCAAAgaBF2AQAAELQIuwAAAAhahF0AAAAELcIuAAAAghZhFwAAAEGLsAsAAICgRdgFAABA0CLsAgAAIGgRdgEAABC0Qpqampqc7gQAAADQFRjZBQAAQNAi7AIAACBoEXYBAAAQtAi7AAAACFqEXQAAAAQtwi4AAACCFmEXAAAAQYuwCwAAgKBF2AUAAEDQIuw6rK6uTvfcc4/GjBmjcePGae7cuU53KaDs27dPP/rRj3T22Wfrggsu0EMPPWRrio6744479Itf/MLpbgSc+vp6/eY3v9FZZ52l8847T//zP/8jDqbsmD179ui73/2uRo0apQkTJujJJ590uksB89ybPn26Vq5c2Xptx44duuWWW3TmmWdq6tSp+uijjxztYyDWcM2aNbr22ms1cuRITZo0SfPmzXO0j4FWvxaHDh2yv5dfffVVOY2w67CHH35Y69at01NPPaX77rtPf/nLX7R48WKnuxUQTKAwQbem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",
      "text/plain": [
       "<Figure size 800x550 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "d_T = 15\n",
    "\n",
    "cos_theta = np.linspace(-1, 1, 10000)\n",
    "sin_theta = np.linspace(-1, 1, 10000)\n",
    "omega = np.linspace(-8, 8, 10000)\n",
    "T = np.arange(0, d_T, 1)\n",
    "\n",
    "disc_states = np.array([discretize_state(np.array([c, s, o])) for c, s, o in zip(cos_theta, sin_theta, omega)])\n",
    "cont_actions = [continualize_action(np.array(t)) for t in T]\n",
    "\n",
    "plt.plot(cos_theta, disc_states[:, 0])\n",
    "plt.xlabel(r\"cos$(\\theta)$, sin$(\\theta)$\")\n",
    "plt.ylabel(r\"cos${}_d$, sin${}_d$\")\n",
    "plt.grid('major')\n",
    "plt.show()\n",
    "plt.plot(omega, disc_states[:, 2])\n",
    "plt.xlabel(r\"$\\omega / \\frac{1}{\\mathrm{s}}$\")\n",
    "plt.ylabel(r\"$\\omega_d$\")\n",
    "plt.grid('major')\n",
    "plt.show()\n",
    "plt.plot(T, cont_actions, 'o-')\n",
    "plt.xlabel(r\"$T_d$\")\n",
    "plt.ylabel(r\"$T / \\mathrm{N} \\cdot \\mathrm{m}$\")\n",
    "plt.grid('major')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-2575b2d2065717a7",
     "locked": true,
     "schema_version": 3,
     "solution": false,
     "task": false
    }
   },
   "source": [
    "## 1) n-Step Sarsa"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-71c349849a7bdad7",
     "locked": true,
     "schema_version": 3,
     "solution": false,
     "task": false
    }
   },
   "source": [
    "Write an on-policy n-step Sarsa control algorithm for the inverted pendulum. \n",
    "\n",
    "Use the following parameters: $\\alpha=0.1, \\gamma=0.9, \\varepsilon=0.1, n=10$ with 500 time steps in 2000 episodes.\n",
    "\n",
    "![](nStepSARSA_Algo.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbgrader": {
     "grade": true,
     "grade_id": "cell-877e2e0ac6a7510e",
     "locked": false,
     "points": 0,
     "schema_version": 3,
     "solution": true,
     "task": false
    }
   },
   "source": [
    "## Solution 1)\n",
    "\n",
    "Execution might take long due to the \"render\" command, but this allows to observe the learning. Comment out to execute faster."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "def policy(pi, state, deterministic, epsilon):\n",
    "    \"\"\"Decide on an action given the current state.\n",
    "\n",
    "    Args:\n",
    "        pi: The policy\n",
    "        state: The current state of the environment\n",
    "        epsilon: Probability for random action in eps-greedy\n",
    "\n",
    "    Returns:\n",
    "        action: The chosen action\n",
    "    \"\"\"\n",
    "    ### BEGIN SOLUTION\n",
    "\n",
    "    if not deterministic and (np.random.uniform(0, 1) < epsilon):\n",
    "        action = np.random.choice(d_T) \n",
    "    else:\n",
    "        action = pi[state]\n",
    "\n",
    "    ### END SOLUTION\n",
    "    return action\n",
    "    \n",
    "\n",
    "def interact(pi, action, done, states, rewards, actions, k, k_T, epsilon):\n",
    "    \"\"\"Interact with the environment to get to the next state. Note that\n",
    "    the interaction is a different here, as this is a SARSA based algorithm.\n",
    "    The action has already been decided on in the last step.\n",
    "\n",
    "    Args:\n",
    "        pi: The current policy\n",
    "        action: The chosen action\n",
    "        done: Whether the current episode is truncated/terminated\n",
    "        states: A list of the states visited in the current episode\n",
    "        rewards: A list of rewards gathered in the current episode\n",
    "        actions: A list of actions applied in the current episode\n",
    "        k: The current time index of the episode\n",
    "        k_T: The termination time (initialized at +inf and set later to be able to deal with\n",
    "            cases with variable episode lengths, e.g. the race track from previous exercises)\n",
    "        epsilon: Probability for random action in eps-greedy\n",
    "\n",
    "    Returns:\n",
    "        next_state: The state after the interaction\n",
    "        next_action: The action for the next timestep\n",
    "        done: Whether the current episode is truncated/terminated in the next state\n",
    "        states: A list of the states visited in the current episode including the new state\n",
    "        rewards: A list of rewards gathered in the current episode including the new reward\n",
    "        actions: A list of actions applied in the current episode including the new action\n",
    "        k_T: The termination time, possibly updated\n",
    "    \"\"\"\n",
    "    ### BEGIN SOLUTION\n",
    "    \n",
    "    cont_action = continualize_action(action)\n",
    "    # env.render() # comment out for faster execution\n",
    "    next_state, reward, terminated, truncated, _ = env.step(cont_action)\n",
    "    done = terminated or truncated\n",
    "\n",
    "    next_state = tuple(discretize_state(next_state))\n",
    "   \n",
    "    states.append(next_state)\n",
    "    rewards.append(reward)\n",
    "\n",
    "    # check if x_{k+1} is terminal\n",
    "    if done:\n",
    "        k_T = k+1\n",
    "        next_action = None\n",
    "    else:\n",
    "        next_action = policy(pi, next_state, False, epsilon)\n",
    "        actions.append(tuple([next_action]))\n",
    "\n",
    "    ### END SOLUTION\n",
    "    return next_state, next_action, done, states, rewards, actions, k_T\n",
    "    \n",
    "\n",
    "def learn(action_values, pi, states, actions, rewards, done, k, n, tau, discount_array, gamma, alpha, k_T):\n",
    "    \"\"\"Learn from your gathered data using n-step SARSA.\n",
    "\n",
    "    Args:\n",
    "        action_values: The action-values before the update\n",
    "        pi: The policy before the update\n",
    "        states: A list of the states visited in the current episode\n",
    "        actions: A list of actions applied in the current episode\n",
    "        rewards: A list of rewards gathered in the current episode\n",
    "        done: Whether the current episode is truncated/terminated\n",
    "        k: The current time index of the episode\n",
    "        n: The number of learning steps\n",
    "        tau: The time index for updating the estimate (lags behind the time index of the episode)\n",
    "        discount_array: An array to weight the n learning steps with the discount factor\n",
    "        gamma: The discount factor\n",
    "        alpha: The step size / learning rate\n",
    "        k_T: The termination time (initialized at +inf and set later to be able to deal with\n",
    "            cases with variable episode lengths, e.g. the race track from previous exercises)\n",
    "\n",
    "    Returns:\n",
    "        action_values: The updated action values\n",
    "        pi: The updated policy\n",
    "    \"\"\"\n",
    "    ### BEGIN SOLUTION\n",
    "\n",
    "    if done:\n",
    "        # helps eliminate contemplation of rewards after termination\n",
    "        rewards.append(0)\n",
    "\n",
    "    last_rewards = rewards[-n:]\n",
    "    g = (discount_array * last_rewards).sum()\n",
    "    if tau + n < k_T:\n",
    "        g += gamma ** n * action_values[states[k+1] + actions[k+1]]\n",
    "\n",
    "    tau_state = states[tau]\n",
    "    action_values[tau_state + actions[tau]] += alpha * (g - action_values[tau_state + actions[tau]])\n",
    "    pi[tau_state] = np.argmax(action_values[tau_state])\n",
    "\n",
    "    ### END SOLUTION\n",
    "    return action_values, pi"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-37c9e8a6c5268048",
     "locked": false,
     "schema_version": 3,
     "solution": true,
     "task": false
    }
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "0e29cb6dd7614beeba494c2126664eb2",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/2000 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "env = gym.make('Pendulum-v1') # , render_mode=\"human\"\n",
    "env = env.unwrapped\n",
    "\n",
    "nb_episodes = 2000  # number of episodes\n",
    "nb_steps = 500  # length of episodes\n",
    "env = TimeLimit(env, max_episode_steps=nb_steps)  # wrap the env for the new maximum step size\n",
    "\n",
    "alpha = 0.1  # learning rate\n",
    "gamma = 0.9  # discount factor\n",
    "epsilon = 0.1  # epsilon greedy parameter\n",
    "n = 10  # prediction steps\n",
    "\n",
    "action_values = np.zeros([d_theta, d_theta, d_omega, d_T])\n",
    "# int is necessary for indexing\n",
    "pi = np.zeros([d_theta, d_theta, d_omega], dtype=int)\n",
    "\n",
    "# we can use this to figure out how well the learning worked\n",
    "cumulative_reward_history = []\n",
    "\n",
    "for j in tqdm(range(nb_episodes), position=0, leave=True):\n",
    "\n",
    "    states = []\n",
    "    actions = []\n",
    "    rewards = []\n",
    "\n",
    "    # will be multiplied with the last rewards\n",
    "    discount_array = gamma ** np.arange(n)\n",
    "\n",
    "    cont_state, _ = env.reset()  # initialize x_0\n",
    "    done = False\n",
    "\n",
    "    state = tuple(discretize_state(cont_state))  # use tuple indexing\n",
    "    action = pi[state]\n",
    "\n",
    "    states.append(state)\n",
    "    actions.append(tuple([action]))\n",
    "\n",
    "    # terminal time\n",
    "    k_T = np.inf\n",
    "    k = 0\n",
    "\n",
    "    while True:\n",
    "        ### BEGIN SOLUTION\n",
    "\n",
    "        # check x_k is not terminal (k < T)\n",
    "        if k < k_T:\n",
    "            state, action, done, states, rewards, actions, k_T = interact(\n",
    "                pi, action, done, states, rewards, actions, k, k_T, epsilon\n",
    "            )\n",
    "\n",
    "        tau = k - n + 1\n",
    "        if tau >= 0:  # test if agent waited long enough to learn\n",
    "            action_values, pi = learn(\n",
    "                action_values, pi, states, actions, rewards, done, k, n, tau, discount_array, gamma, alpha, k_T\n",
    "            )\n",
    "\n",
    "        if tau == k_T - 1:\n",
    "            break\n",
    "\n",
    "        k += 1\n",
    "        ### END SOLUTION\n",
    "\n",
    "    cumulative_reward_history.append(np.sum(rewards))\n",
    "\n",
    "env.close()\n",
    "pi_learned = np.copy(pi)  # save pi in cache under different name for later"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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evHFF+n444+nSZMmifLuv/9+GjduHK1fv57atm3r6bGHBYiZ1CCa4vsHAAAQDgIrmrOysujBBx+MfV++fDl9+umnNG3aNPF9wYIF1LJlSyGYJdiN48knn4wt5+8smBn+O2jQICGsWTTz8l/+8pexbbmsVq1aid+Niua0tIj45wbp6ZCgYcD2/hKJUIbJOM1p6fXbZKbrb6tUPm8n/a52RNK1p1QOL1Iq1+ixZKTrl6VF+uHtpb+q+7EQAzuoGG2bVAPtog7aRhm0S/DaJrCiWc65555L33//PfXu3ZvOOecc8dv27dupWbNmceuxZXrr1q2x5V26dGmwnMU3s23bNsXtt2zZYrheJSX5DYSBU6RlBu9UutU2QSInJ8vW8tLTItS4cb6pbQryc2LbHKzVX1+p/KLi3NjvaSqDXmZGfPSURo3y4h4elMo1eiyF5Qdjn7OzMk23gURRUa7m8mTLDQN6bZOqoF3UQdsog3YJTtv4WmlVVlbGRG4iTZs2pby8upss+yqXlZXR3XffTddddx098cQTVFFRIazRcvg7u3Uwest531rLjbBr137XLM3l+43XK8zZ74JOZaW957GmppZ2795vapv9+ytj25SXVeiur1Q+b5d9WCvX1igr76pDNXHfy8rq5hOIbWqjDco94+guho9l797K2OeDVYdMtwFbN3iwLi+vEG2ohtlyw4DRtkk10C7qoG2UQbv4p22MGkB8LZrZFWL69OmKyx577DER2YLp0aOH+HvvvffS6aefThs2bBD+yokCl7/n5OSIz8kuz801/tTDN37+5wbV1bjgwkBNjb39JZpE3+A6SNtUGxislMrn7aTfowYfmhLLSfx+7BHtDB+LvN68m2SvDx6stbZN5etOr21SFbSLOmgbZdAuwWkbX4vmYcOG0bJlyxSXcdQMnsx33HHHUVpanUlLcrfgUHPNmzenHTt2xG3D39lCzagtl1wy9Lb3G0G02cI7w/8ke4qsnlo7X0KgmwEAALADf3lYm4DdK371q18Ja7TE4sWLKT09nTp27EgDBgygjRs3xvkgc2QN/p3h2Mvz5s2LWbv479y5c8Xv0nIpEgezefNm8U9a7js0VEbfTqXkTyBnUuJpKuptQhI/NAEAAIDgE1jRzBbfiRMn0l133SWSlPzwww8ibBxPCiwoKBARLkaNGkU33ngjLV26lN544w2R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TqLvvvsu9tv69evpggsuoAEDBtAJJ5xAX331Vdw233zzjdiG+8j06dPF+nLC0FZK7TJ//nw688wzxXEde+yx9MYbb8Rtc8oppzToQz///LNYxgl4H3zwQRo+fLgYs+6//36qra2lIKLUNlbG3LC0TWK73HLLLYpjDl8zEnzvTly+f//+UNzft2rcowM5xnAabRBs7rzzzujJJ58cXbRoUfS///1vdODAgdEPPvggGnZqa2uj06ZNi/7iF7+I/vzzz9Hvv/8+eswxx0T/8Ic/iOUXXHBB9Mknn4xu27Yt9u/AgQNi2YIFC6L9+vWLvv3229Gffvopeu6550YvueSSaJh4/PHHo5deemnc8ZeVlUX3798fHTlypGinFStWRO+6667oiBEjxO9hb5uKioq49ti0aZPoM/fcc49Yzp/ffffduHUOHjwoln344YfRwYMHRz/99FPRRieccEL097//fTToVFZWRmfMmBHt1q1bdNasWbFri8eU66+/XvSRJ554Itq/f//oxo0bxXL+O2DAgOizzz4rrr1rrrkmetJJJ4ntwtJWSu3C/WHIkCHRP/3pT9HVq1dH33///Wjfvn2jM2fOFMurq6vF99mzZ8f1oUOHDonl3F5jxowRY9W3334bHTVqVPSZZ56JBg2ltrE65oahbZTapby8PK495s2bF+3Tp0/0448/Fsu3bNki1l+3bl3cetK1FOT7e63GPTqoYwxEc8BhocODtHzgeuyxx8SAFHb4QuPBZvv27bHf/vWvf4nBlhk9enT0yy+/VNz2xhtvjN58882x7yyeunfvLgausMCDEd/cE3njjTei48ePjw0+/JcHsjfffDNl2kaCB+oJEyYIYcz/evbsGV21apXiumeffXb0kUceiX3nGwCLAEkUBJHly5dHTznlFHHzkt/ov/nmG3HDkh6kmPPPPz92/A8//HDcGMNtwDdzafugt5Vau7z88svR4447Lm7dO+64I3rdddeJz2vWrIn26NFDiCclWBRK1xnzzjvvRMeNGxcNEmptY3XMDXrbaLWLnIsuuih6ww03xL5//fXXwogRxvv7Co17dFDHGLhnBJylS5dSdXW1eD0hMXjwYFqwYEEgX22ZoWnTpvTMM89QkyZN4n7ft2+f+MevhTp06KC4LbcPv+6SaNmyJbVq1Ur8HhZWrlypePx8jNxHIpGI+M5/Bw0a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",
      "text/plain": [
       "<Figure size 800x550 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(2000,)\n"
     ]
    }
   ],
   "source": [
    "plt.plot(cumulative_reward_history)\n",
    "plt.xlabel(\"episode\")\n",
    "plt.ylabel(r\"$\\sum R$\")\n",
    "plt.show()\n",
    "\n",
    "print(np.shape(cumulative_reward_history))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-ddebe8848a817b91",
     "locked": true,
     "schema_version": 3,
     "solution": false,
     "task": false
    }
   },
   "source": [
    "## Greedy Execution\n",
    "\n",
    "Test the learned policy by pure greedy execution."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-6ffa29bb63e9fc42",
     "locked": true,
     "schema_version": 3,
     "solution": false,
     "task": false
    }
   },
   "outputs": [],
   "source": [
    "env = gym.make('Pendulum-v1', render_mode=\"human\")\n",
    "env = env.unwrapped\n",
    "\n",
    "nb_steps = 200\n",
    "env = TimeLimit(env, max_episode_steps=nb_steps)\n",
    "\n",
    "\n",
    "state, _ = env.reset() # initialize x_0\n",
    "disc_state = tuple(discretize_state(state)) # use tuple indexing\n",
    "disc_action = pi_learned[disc_state]\n",
    "\n",
    "while True:\n",
    "        \n",
    "    cont_action = continualize_action(disc_action)\n",
    "    env.render() # comment out for faster execution\n",
    "    state, reward, terminated, truncated, _ = env.step(cont_action)\n",
    "    done = terminated or truncated\n",
    "\n",
    "    disc_state = tuple(discretize_state(state))\n",
    "        \n",
    "    if done:\n",
    "        break\n",
    "\n",
    "    disc_action = pi_learned[disc_state] # exploitative action\n",
    "    \n",
    "env.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-4731b891d975389f",
     "locked": true,
     "schema_version": 3,
     "solution": false,
     "task": false
    },
    "tags": []
   },
   "source": [
    "## 2) Recursive updates"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-24a77a257e20058a",
     "locked": true,
     "schema_version": 3,
     "solution": false,
     "task": false
    },
    "tags": []
   },
   "source": [
    "Both, $n$-step and $\\lambda$-return updates, are based on a forward view. That means we have to wait for future states and rewards before an update can be performed.\n",
    "We therefore introduced the concept of eligibility traces, which follows the general idea that previous actions have significantly led to the current situation. Contrary to n-step learning, however, intuition tells us that more recent decisions had a more severe impact on the present situation than decisions that were made a long time ago. Thus, it may be helpful to integrate a forgetting factor $\\lambda$ which decreases the assumed influence of actions over time.\n",
    "\n",
    "Solution 2 is now to be changed by using eligibility traces $z_k(x_k)$ within the action-value update, resulting in SARSA($\\lambda$). Note that the code is overall a lot less complex than the code from task 2 and much closer to the \"normal\" TD(0)-SARSA.\n",
    "\n",
    "Test it for different values of $\\lambda$. How sensitive is the process to the choice of $\\lambda$?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "def interact(pi, action, deterministic, epsilon):\n",
    "    \"\"\"Interact with the environment to get to the next state. Note that\n",
    "    the interaction is a different here, as this is a SARSA based algorithm.\n",
    "    The action has already been decided on in the last step.\n",
    "\n",
    "    Args:\n",
    "        pi: The current policy\n",
    "        action: The chosen action\n",
    "\n",
    "    Returns:\n",
    "        next_state: The state after the interaction\n",
    "        reward: The reward for the current interaction\n",
    "        next_action: The action for the next timestep\n",
    "        done: Whether the current episode is truncated/terminated in the next state\n",
    "    \"\"\"\n",
    "    ### BEGIN SOLUTION\n",
    "    \n",
    "    cont_action = continualize_action(action)\n",
    "    # env.render() # comment out for faster execution\n",
    "    next_state, reward, terminated, truncated, _ = env.step(cont_action)\n",
    "    done = terminated or truncated\n",
    "\n",
    "    next_state = tuple(discretize_state(next_state))\n",
    "    next_action = policy(pi, next_state, deterministic, epsilon)\n",
    "\n",
    "    ### END SOLUTION\n",
    "    return next_state, reward, next_action, done\n",
    "\n",
    "\n",
    "def learn(action_values, pi, state, next_state, reward, action, next_action, eligibility, lambd, gamma, alpha):\n",
    "    \"\"\"Learn from your gathered data using SARSA(lambda). Note that the structures to deal with \n",
    "    the terminal state from the last task are not needed in this algorithm. The information from\n",
    "    the past is saved in the eligibility trace.\n",
    "\n",
    "    Args:\n",
    "        action_values: The action-values before the update\n",
    "        pi: The policy before the update\n",
    "        state: State before the last interaction\n",
    "        next_state: State after the last interaction\n",
    "        reward: Reward for the interaction\n",
    "        action: Action in the last interaction\n",
    "        next_action: Action for the coming interaction\n",
    "        eligibility: The eligibility trace\n",
    "        lambd: Decay factor\n",
    "        gamma: Discount factor\n",
    "        alpha: Step size / learning rate\n",
    "\n",
    "    Returns:\n",
    "        action_values: The updated action values\n",
    "        pi: The updated policy\n",
    "    \"\"\"\n",
    "    ### BEGIN SOLUTION\n",
    "\n",
    "    state_action = state + (action,)\n",
    "    next_state_action = next_state + (next_action,)\n",
    "\n",
    "    delta = reward + gamma * action_values[next_state_action] - action_values[state_action]\n",
    "\n",
    "    action_values += alpha * delta * eligibility\n",
    "\n",
    "    pi[state] = np.argmax(action_values[state])\n",
    "    ### END SOLUTION\n",
    "    return action_values, pi"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-8872e02f8c41136a",
     "locked": false,
     "schema_version": 3,
     "solution": true,
     "task": false
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "cd5941dce699439b94f8c238211c0512",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/2000 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "env = gym.make('Pendulum-v1') # , render_mode=\"human\"\n",
    "env = env.unwrapped\n",
    "\n",
    "nb_episodes = 2000  # number of episodes\n",
    "nb_steps = 500  # length of episodes\n",
    "env = TimeLimit(env, max_episode_steps=nb_steps)\n",
    "\n",
    "alpha = 0.1  # learning rate\n",
    "gamma = 0.9  # discount factor\n",
    "epsilon = 0.1  # epsilon greedy parameter\n",
    "lambd = 0.8  # forgetting factor\n",
    "\n",
    "action_values = np.zeros([d_theta, d_theta, d_omega, d_T])\n",
    "# int is necessary for indexing\n",
    "pi = np.zeros([d_theta, d_theta, d_omega], dtype=int)\n",
    "\n",
    "# we can use this to figure out how well the learning worked\n",
    "cumulative_reward_history = []\n",
    "\n",
    "for j in tqdm(range(nb_episodes), position=0, leave=True):\n",
    "\n",
    "    # init eligibility trace, acts as the memory of this algorithm\n",
    "    eligibility = np.zeros([d_theta, d_theta, d_omega, d_T])\n",
    "\n",
    "    cont_state, _ = env.reset()  # initialize x_0\n",
    "    done = False\n",
    "\n",
    "    state = tuple(discretize_state(cont_state))  # use tuple indexing\n",
    "    action = pi[state]\n",
    "\n",
    "    # update eligibilities\n",
    "    eligibility *= lambd * gamma\n",
    "    eligibility[state, (action,)] += 1.0\n",
    "\n",
    "    # terminal time\n",
    "    k_T = None\n",
    "    k = 0\n",
    "\n",
    "    rewards = 0\n",
    "\n",
    "    while True:\n",
    "        ### BEGIN SOLUTION\n",
    "\n",
    "        next_state, reward, next_action, done = interact(pi, action, False, epsilon)\n",
    "\n",
    "        # update eligibilities\n",
    "        eligibility *= lambd * gamma\n",
    "        eligibility[state + (action,)] += 1.0\n",
    "        \n",
    "        action_values, pi = learn(\n",
    "            action_values, pi, state, next_state, reward, action, next_action, eligibility, lambd, gamma, alpha\n",
    "        )\n",
    "\n",
    "        state = next_state\n",
    "        action = next_action\n",
    "\n",
    "        ### END SOLUTION\n",
    "\n",
    "        rewards += reward\n",
    "        if done:\n",
    "            break\n",
    "\n",
    "    cumulative_reward_history.append(np.sum(rewards))\n",
    "\n",
    "env.close()\n",
    "\n",
    "### END SOLUTION"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-05f58d9e3aabc348",
     "locked": true,
     "schema_version": 3,
     "solution": false,
     "task": false
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 800x550 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(2000,)\n"
     ]
    }
   ],
   "source": [
    "plt.plot(cumulative_reward_history)\n",
    "plt.xlabel(\"episode\")\n",
    "plt.ylabel(r\"$\\sum R$\")\n",
    "plt.show()\n",
    "\n",
    "print(np.shape(cumulative_reward_history))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-ea25c02b87a6e9b6",
     "locked": true,
     "schema_version": 3,
     "solution": false,
     "task": false
    },
    "tags": []
   },
   "source": [
    "## Greedy Execution\n",
    "\n",
    "Test the learned policy by pure greedy execution."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "nbgrader": {
     "grade": false,
     "grade_id": "cell-7272b1acfbd4b325",
     "locked": true,
     "schema_version": 3,
     "solution": false,
     "task": false
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "env = gym.make('Pendulum-v1', render_mode=\"human\")\n",
    "env = env.unwrapped\n",
    "\n",
    "nb_steps = 200\n",
    "\n",
    "state, _ = env.reset() # initialize x_0\n",
    "disc_state = tuple(discretize_state(state)) # use tuple indexing\n",
    "disc_action = pi[disc_state]\n",
    "\n",
    "for k in range(nb_steps):\n",
    "        \n",
    "    next_state, reward, next_action, done = interact(pi, action, True, epsilon)\n",
    "\n",
    "    state = next_state\n",
    "    action = next_action\n",
    "    if done:\n",
    "        break\n",
    "    \n",
    "env.close()"
   ]
  }
 ],
 "metadata": {
  "@webio": {
   "lastCommId": null,
   "lastKernelId": null
  },
  "celltoolbar": "Create Assignment",
  "kernelspec": {
   "display_name": "RL_course_py12",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
